Skip to main content
Version: 24.05

Aspect Models

Industry Core kit banner

Aspect models are mostly easy to create by transforming a company's internal data into the target aspect model. Transformations are mostly straightforward in these cases. If necessary, special steps in creating aspect models are mentioned in the corresponding sections.

In the following section, all aspect models that are part of Industry Core are documented.

Digital Twin TypeAspect ModelMandatory VersionOptional VersionsKIT
PartTypePartTypeInformation1.0.0Industry Core
SingleLevelBomAsPlanned3.0.0Industry Core
SingleLevelUsageAsPlanned2.0.0Industry Core
PartInstanceSerialPart3.0.0Industry Core
Batch3.0.0Industry Core
JustInSequencePart3.0.0Industry Core
SingleLevelBomAsBuilt3.0.0Industry Core
SingleLevelUsageAsBuilt3.0.0Industry Core
TractionBatteryCode1.0.0Traceability

PartTypeInformation

A Part Type Information represents an item in the Catena-X Bill of Material (BOM) on a type level in a specific version. It replaces the aspect model PartAsPlanned 2.0.0 (https://github.com/eclipse-tractusx/sldt-semantic-models/tree/main/io.catenax.part_as_planned/2.0.0)

Aspect model in GitHub:

Example: Aspect Model PartTypeInformation 1.0.0 for a part type

{
"catenaXId" : "580d3adf-1981-44a0-a214-13d6ceed9379",
"partTypeInformation" : {
"partClassification" : [
{
"classificationStandard": "GIN 20510-21513",
"classificationID": "1004716",
"classificationDescription": "Generic standard for classification of parts in the automotive industry."
},
{
"classificationStandard": "OEM Part Classification 1022-102",
"classificationID": "Exterior mirror",
"classificationDescription": "OEM standard for classification of parts."
}
],
"manufacturerPartId" : "123-0.740-3434-A",
"nameAtManufacturer" : "Mirror left"
},
"partSitesInformationAsPlanned" : [
{
"functionValidUntil" : "2024-01-29T12:00:00.123+02:00",
"catenaXsiteId" : "BPNS1234567890ZZ",
"function" : "production",
"functionValidFrom" : "2024-01-29T12:00:00.123+02:00"
}
]
}

SingleLevelBomAsPlanned

The single-level Bill of Material represents one sub-level of an assembly and does not include any lower-level subassemblies. In as planned lifecycle state all variants are covered (\"120% BoM\"). If multiple versions of child parts exist that can be assembled into the same parent part, all versions of the child part are included in the BoM. If there are multiple suppliers for the same child part, each supplier has an entry for their child part in the BoM.

Aspect model in GitHub:

Example: Aspect Model SingleLevelBomAsPlanned 3.0.0 for a Catalog Part

{
"catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
"childItems": [
{
"validityPeriod": {
"validFrom": "2023-03-21T08:17:29.187+01:00",
"validTo": "2024-07-01T16:10:00.000+01:00"
},
"catenaXId": "urn:uuid:055c1478-0395-47m8-94de-7cf802c5724a",
"quantity": {
"value": 5,
"unit": "unit:litre"
},
"businessPartner": "BPNL50096894aNXY",
"createdOn": "2022-02-03",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
]
}

SingleLevelUsageAsPlanned

The aspect provides the information in which parent part(s)/product(s)the given item is to be assembled into or used. This could be a 1:1 relationship in terms of a e.g. a brake component or 1:n for e.g. coatings. The given item as well as the parent item must refer to a part type twin representing a generic part, e.g. a catalog part. If one input product is regarded as an alternative to another input product (from same or different supplier), the relation should still be built, but marked with "IsOnlyPotentialParent".

Aspect model in GitHub:

Example: Aspect Model SingleLevelUsageAsPlanned 2.0.0 for a Catalog Part

{
"catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
"parentItems": [
{
"validityPeriod": {
"validFrom": "2023-03-21T08:17:29.187+01:00",
"validTo": "2024-07-01T16:10:00.000+01:00"
},
"catenaXId": "urn:uuid:055c1478-0395-47m8-94de-7cf802c5724a",
"quantity": {
"value": 2,
"unit": "unit:litre"
},
"businessPartner": "BPNL50096894aNXY",
"createdOn": "2022-02-03",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
],
"customers": [
"BPNL50096894aNXY"
]
}

Creation of Aspect Model SingleLevelUsageAsPlanned

The SingleLevelUsageAsPlanned aspect can only be completed by combining supplier and customer information. Only the supplier will create and update the Usage aspects. The missing information can be provided by the customer(s) with the help of Unique ID Push notifications.

For better understanding, simplified names "parents", "child", "customers" are used in the description.

These expressions “parents”, “child” and “customers” can be translated into the attributes of the aspect model.

Translation into SingleLevelUsageAsPlanned aspect:

“parents” -> “catenaXId” in “parentItems” “child” -> overall “catenaXId” in aspect “customers” -> “businessPartner” in “customers”

  1. Supplier creates Digital Twin for his own part type or material with corresponding “part” aspect (partType). In addition, the supplier creates a singleLevelUsageAsPlanned aspect and attaches it to that Digital Twin. At this point of time the singleLevelUsageAsPlanned aspect cannot contain “parents” information, only “child” (unique ID of own product) and “customers” (BPNL of customers).
  2. The customer plans tp produce a product or material and creates a Digital Twin for it. When the customer plans to use the supplier part or material to produce the new product, he does not create an additional Digital Twin for the supplier product. Instead, the customer sends an appropriate notification to the supplier. This could happen when creating the singleLevelBomAsPlanned aspect, because at this point of time all information is available at the sender side. The customer sends a notification to the supplier, containing the missing “parents” information for that input product (“child”), both specified by the uniqueId, plus optional additional information like quantity and dates. “Parents” is the to be produced product at the customer, “child” is the to be used product coming from the supplier.
  3. Supplier receives notification from customer and updates own singleLevelUsageAsPlanned aspect with the “parents” and additional information, if provided, like quantity and dates.

The customer MAY give access to the supplier for the Digital Twin and the partType aspect but it is not requested. The only information that is shared via notification is the catenaXID of the product to be used by the customer, plus quantity and date.

The customer MAY NOT give access to the singleLevelBomAsPlanned aspect that belongs to the Digital Twin of his own product because it may also contain information relating to other suppliers that may not be shared.

SerialPart

A serialized part is an instantiation of a (design-) part, where the particular instantiation can be uniquely identified by means of a serial numbers or a similar identifier (e.g. VAN) or a combination of multiple identifiers (e.g. combination of manufacturer, date and number)

Aspect model in GitHub:

Example: Aspect Model SerialPart 3.0.0 for a Vehicle

{
"localIdentifiers": [
{
"key": "manufacturerId",
"value": "BPNL7588787849VQ"
},
{
"key": "manufacturerPartId",
"value": "95657362-83"
},
{
"key": "partInstanceId",
"value": "OEM-A-F8LM95T92WJ9KNDD3HA5P"
},
{
"key": "van",
"value": "OEM-A-F8LM95T92WJ9KNDD3HA5P"
}
],
"manufacturingInformation": {
"date": "2022-02-04T14:48:54",
"country": "DEU",
"sites": [
{
"catenaXsiteId": "BPNS1234567890ZZ",
"function": "production"
}
]
},
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"partTypeInformation": {
"manufacturerPartId": "95657362-83",
"nameAtManufacturer": "Vehicle Model A",
"partClassification": [
{
"classificationStandard": "GIN 20510-21513",
"classificationID": "1004712",
"classificationDescription": "Generic standard for classification of parts in the automotive industry."
},
{
"classificationStandard": "OEM Part Classification 1022-102",
"classificationID": "Electric vehicle",
"classificationDescription": "OEM standard for classification of parts."
}
],
}
}

Example: Aspect Model SerialPart 3.0.0 for a Serialized Part (Non-Vehicle)

{
"localIdentifiers": [
{
"key": "manufacturerId",
"value": "BPNL7588787849VQ"
},
{
"key": "manufacturerPartId",
"value": "95657362-83"
},
{
"key": "partInstanceId",
"value": "NO-574868639429552535768526"
}
],
"manufacturingInformation": {
"date": "2022-02-04T14:48:54",
"country": "DEU",
"sites": [
{
"catenaXsiteId": "BPNS1234567890ZZ",
"function": "production"
}
]
},
"catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04",
"partTypeInformation": {
"manufacturerPartId": "95657362-83",
"customerPartId": "798-515297795-A",
"nameAtManufacturer": "High Voltage Battery",
"nameAtCustomer": "High Voltage Battery",
"partClassification": [
{
"classificationStandard": "GIN 20510-21513",
"classificationID": "1004713",
"classificationDescription": "Generic standard for classification of parts in the automotive industry."
},
{
"classificationStandard": "OEM Part Classification 1022-102",
"classificationID": "Traction Battery",
"classificationDescription": "OEM standard for classification of parts."
}
],
}
}

Creation of Aspect Model SerialPart

The only special step in creating this aspect model is the initial creation of the Unique ID for the corresponding part.

Batch

A batch is a quantity of (semi-) finished products or (raw) material product that have been produced under the same circumstances (e.g. same production location), as specified groups or amounts, within a certain time frame. Every batch can differ in the number or amount of products. Different batches can have varied specifications, e.g., different colors. A batch is identified via a Batch ID.

Aspect model in GitHub:

Example: Aspect Model Batch 3.0.0 for a Batch of Raw Material

{
"localIdentifiers": [
{
"value": "BID12345678",
"key": "batchId"
},
{
"value": "123-0.740-3434-A",
"key": "manufacturerPartId"
},
],
"manufacturingInformation": {
"date": "2022-02-04T14:48:54",
"country": "HUR",
"sites": [
{
"catenaXsiteId": "BPNS1234567890ZZ",
"function": "production"
}
]
},
"catenaXId": "580d3adf-1981-44a0-a214-13d6ceed9379",
"partTypeInformation": {
"partClassification": [
{
"classificationStandard": "GIN 20510-21513",
"classificationID": "1004714",
"classificationDescription": "Generic standard for classification of parts in the automotive industry."
},
{
"classificationStandard": "OEM Part Classification 1022-102",
"classificationID": "Two-component adhesive",
"classificationDescription": "OEM standard for classification of parts."
}
],
"manufacturerPartId": "123-0.740-3434-A",
"nameAtManufacturer": "PA66-GF30"
}
}

Creation of Aspect Model Batch

The only special step in creating this aspect model is the initial creation of the Unique ID for the corresponding batch.

JustInSequencePart

A just-in-sequence part is an instantiation of a (design-) part, where the particular instantiation can be uniquely identified by means of a combination of several IDs related to a just-in-sequence process.

Aspect model in GitHub:

Example: Aspect Model JustInSequencePart 3.0.0 for a non-serialized component

{
"localIdentifiers": [
{
"key": "manufacturerId",
"value": "BPNL7588787849VQ"
},
{
"key": "jisNumber",
"value": "894651684"
},
{
"key": "parentOrderNumber",
"value": "OEM-A-F8LM95T92WJ9KNDD3HA5P"
},
{
"key": "manufacturerPartId",
"value": "84816168424"
},
{
"key": "nameAtManufacturer",
"value": "Black Leather Front Row Seat for Vehicle Model B"
},
{
"key": "jisCallDate",
"value": "2022-01-24T09:13:34"
}
],
"manufacturingInformation": {
"date": "2022-02-04T14:48:54",
"country": "DEU",
"sites": [
{
"catenaXsiteId": "BPNS1234567890ZZ",
"function": "production"
}
]
},
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"partTypeInformation": {
"partClassification": [
{
"classificationStandard": "GIN 20510-21513",
"classificationID": "1004715",
"classificationDescription": "Generic standard for classification of parts in the automotive industry."
},
{
"classificationStandard": "OEM Part Classification 1022-102",
"classificationID": "Front row seat",
"classificationDescription": "OEM standard for classification of parts."
}
],
"manufacturerPartId": "84816168424",
"nameAtManufacturer": "Black Leather Front Row Seat for Vehicle Model B",
}
}

Please note that if a just-in-sequence part is also a serialized part, SerialPart should be used instead.

Creation of Aspect Model JustInSequencePart

The only special step in creating this aspect model is the initial creation of the Unique ID for the corresponding part.

SingleLevelBomAsBuilt

The aspect provides the child parts (one structural level down) which the given object assembles.

Aspect model in GitHub:

Example: Aspect Model SingleLevelBomAsBuilt 3.0.0 for a Serialized Part

{
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"childItems": [
{
"catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04",
"quantity": {
"value": 1.0,
"unit": "unit:piece"
},
"hasAlternatives": false,
"createdOn": "2022-02-03",
"businessPartner": "BPNL50096894aNXY",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
]
}

Aspect Model SingleLevelBomAsBuilt 3.0.0 for a Batch

{
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"childItems": [
{
"catenaXId": "urn:uuid:d60b99b0-f269-42f5-94d0-64fe0946ed04",
"quantity": {
"value": 5.0,
"unit": "unit:kilogram"
},
"hasAlternatives": false,
"createdOn": "2022-02-03",
"businessPartner": "BPNL50096894aNXY",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
]
}

Creation of Aspect Model SingleLevelBomAsBuilt

The creation of the aspect model SingleLevelBomAsBuilt is more complicated. This aspect model contains the Unique ID of the manufacturer's part (attribute catenaXId) which is created - as described above - when the part's SerialPart or Batch aspect model is created. But it also contains the Unique IDs of the built-in parts (attributes childItems.catenaXId), as shown in the example above.

For the build-in parts (child items), their Unique ID is not known to the manufacturer initially. Only known are the local identifiers that are printed on the physical part (serialized part or batch), i.e., manufacturer (BPN), manufacturer part ID and serial or batch number. To get the Unique ID of a built-in part, a data provider therefore has to do the following:

  • Get all necessary local IDs for the built-in part:
    • manufacturer (BPN), manufacturer part ID and serial number for serialized parts
    • manufacturer (BPN), manufacturer part ID and batch number for batches
  • The next step is about getting the Unique ID of all built-in parts. There are two ways:
    • Unique IDs for built-in parts might already be available locally if Unique ID Push is supported by the data provider and the suppliers of the built-in parts.
    • Query a supplier's Digital Twin Registry to find the digital twin for this built-in part

SingleLevelUsageAsBuilt

The aspect provides the information in which parent part instance(s)/product(s) the given item is assembled into or used. This could be a 1:1 relationship in terms of e.g. a brake component or 1:n for e.g. coatings. The parent item must refer to an object from the as built lifecycle phase, the child item may refer to an object from the as built or the as planned lifecycle phase. If one input part instance is regarded as an alternative to another input part instance (from same or different supplier), the relation should still be built, but marked with "IsOnlyPotentialParent".

Aspect model in GitHub:

Example: Aspect Model SingleLevelUsageAsBuilt 3.0.0 for a Serialized Part

{
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"parentItems": [
{
"catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
"isOnlyPotentialParent": false,
"quantity": {
"value": 1.0,
"unit": "unit:piece"
},
"createdOn": "2022-02-03",
"businessPartner": "BPNL50096894aNXY",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
],
"customers": [
"BPNL50096894aNXY"
]
}

Aspect Model SingleLevelUsageAsBuilt 3.0.0 for a Batch

{
"catenaXId": "urn:uuid:580d3adf-1981-44a0-a214-13d6ceed9379",
"parentItems": [
{
"catenaXId": "urn:uuid:055c1128-0375-47c8-98de-7cf802c3241d",
"isOnlyPotentialParent": false,
"quantity": {
"value": 25.0,
"unit": "unit:kilogram"
},
"createdOn": "2022-02-03",
"businessPartner": "BPNL50096894aNXY",
"lastModifiedOn": "2022-02-03T14:48:54.709Z"
}
],
"customers": [
"BPNL50096894aNXY"
]
}

Creation of Aspect Model SingleLevelUsageAsBuilt

The SingleLevelUsageAsBuilt aspect can only be completed by combining supplier and customer information. Only the supplier will create and update the Usage aspects. The missing information can be provided by the customer(s) with the help of notifications.

For better understanding, simplified names "parents", "child", "customers" are used in the description.

These expressions “parents”, “child” and “customers” can be translated into the attributes of the aspect model.

Translation into SingleLevelUsageAsBuilt aspect (mapping):

  • “parents” -> “catenaXId” in “parentItems”
  • “child” -> overall “catenaXId” in aspect
  • “customers” -> “businessPartner” in “customers”
  1. Supplier creates Digital Twin for his own produced part or material with corresponding “part” aspect (partInstance or similar). In addition, the supplier creates a SingleLevelUsageAsBuilt aspect and attaches it to that Digital Twin. At this point of time the SingleLevelUsageAsBuilt aspect cannot contain “parents” information, only “child” (unique ID of own product) and “customers” (BPNL of customers).
  2. The customer produces a new product or material and creates a Digital Twin for it. When the customer uses the supplier part or material to produce the new product, he does not create an additional Digital Twin for the supplier product. Instead, the customer sends an appropriate notification to the supplier. This could happen when creating the SingleLevelBomAsBuilt aspect, because at this point of time all information is available at the sender side. The customer sends a notification to the supplier, containing the missing “parents” information for that input product (“child”), both specified by the uniqueId, plus optional additional information like quantity and dates. “Parents” is the produced product at the customer, “child” is the used product coming from the supplier.
  3. Supplier receives notification from customer and updates own SingleLevelUsageAsBuilt aspect with the “parents” and additional information, if provided, like quantity and dates. In case of a batch, the customer can use one batch to create several products. In that case, either several notifications can be sent, or one notification may contain several “parents” relations. In case of a batch, parts of it can also be sold to several customers. So, the supplier has to put several “customers” into the SingleLevelUsageAsBuilt aspect and has to be ready to receive notifications from several customers that result in an update of the aspect The customer MAY give access to the supplier for the Digital Twin, partType or similar aspect but it is not requested. The only information that is shared via notification is the catenaXID of the product that has been manufactured by the customer plus quantity and date.

The customer MAY NOT give access to the SingleLevelBomAsBuilt aspect that belongs to the Digital Twin of his own produced product because it may also contain information relating to other suppliers that may not be shared.

NOTICE

This work is licensed under the CC-BY-4.0.

  • SPDX-License-Identifier: CC-BY-4.0
  • SPDX-FileCopyrightText: 2023 BASF SE
  • SPDX-FileCopyrightText: 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
  • SPDX-FileCopyrightText: 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST & Fraunhofer IML)
  • SPDX-FileCopyrightText: 2023 German Edge Cloud GmbH & Co. KG
  • SPDX-FileCopyrightText: 2023 Mercedes Benz AG
  • SPDX-FileCopyrightText: 2023 Robert Bosch Manufacturing Solutions GmbH
  • SPDX-FileCopyrightText: 2023 SAP SE
  • SPDX-FileCopyrightText: 2023 Siemens AG
  • SPDX-FileCopyrightText: 2023 T-Systems International GmbH
  • SPDX-FileCopyrightText: 2023 ZF Friedrichshafen AG
  • SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation
  • Source URL: https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/tree/main/docs-kits/kits/Industry%20Core%20Kit (latest version)